Detecting twist input with an interactive cord

ABSTRACT

This document describes techniques and devices for detecting twist input with an interactive cord. An interactive cord may be constructed with one or more conductive yarns wrapped around a cable in a first direction (e.g., clockwise), and one or more conductive yarns wrapped around the cable in a second direction that is opposite the first direction (e.g., counter-clockwise). A controller measures one or more capacitance values associated with the conductive yarns. In response to detecting a change in the one or more capacitance values, the controller determines that the change in the capacitance values corresponds to twist input caused by the user twisting the interactive cord. Then, the controller initiates one or more functions based on the twist input, such as by controlling audio to a headset by increasing or decreasing the volume, scrolling through menu items, and so forth.

BACKGROUND

In-line controls for cords are standard and ubiquitous for devices suchas earbuds or headphones for music players, cellular phone usage, and soforth. Similar in-line controls are also used by cords for householdappliances and lighting, such as clocks, lamps, radios, fans, and soforth. Generally, such in-line controls utilize unfashionable hardwarebuttons attached to the cord which can break after extended use of thecord. Conventional in-line controls also have problems with intrusiondue to sweat and skin, which can lead to corrosion of internal controlsand electrical shorts. Further, the hardware design of in-line controlslimits the overall expressiveness of the interface, in that increasingthe amount of controls requires more hardware, leading to more bulk andcost.

SUMMARY

This document describes techniques and devices for detecting twist inputwith an interactive cord. An interactive cord includes a cable, and afabric cover that covers the cable. The interactive cord may beimplemented as a variety of different types of cords, such as a cord forheadphones, earbuds, data transfer, lamps, clocks, radios, fans, and soforth. The fabric cover includes conductive yarns which are configuredto enable reception of touch input that causes a change in one or morecapacitance values associated with the conductive yarns. A controller,implemented at the interactive cord or a computing device coupled to theinteractive cord, can detect the change in the capacitance values andtrigger one or more functions associated with the change in capacitancevalues. For example, when implemented as a cord for a headset (e.g.,headphones or ear buds), the controller can control audio to theheadset, such as by playing the audio, pausing the audio, adjusting thevolume of the audio, skipping ahead in the audio, skipping backwards inthe audio, skipping to additional audio, and so forth.

In one or more implementations, the interactive cord is configured todetect twist input. To do so, the interactive cord may be constructedwith one or more conductive yarns wrapped around the cable in a firstdirection (e.g., clockwise), and one or more conductive yarns wrappedaround the cable in a second direction that is opposite the firstdirection (e.g., counter-clockwise). The controller measures one or morecapacitance values associated with the conductive yarns. In response todetecting a change in the one or more capacitance values, the controllerdetermines that the change in the capacitance values corresponds totwist input caused by the user twisting or rotating the interactivecord. In some cases, the controller can also determine the direction ofthe twist input (e.g., clockwise or counter-clockwise). Then, thecontroller initiates one or more functions based on the twist input,such as by controlling audio to a headset by increasing or decreasingthe volume, scrolling through menu items, and so forth.

This summary is provided to introduce simplified concepts concerningdetecting twist input with an interactive cord, which is furtherdescribed below in the Detailed Description. This summary is notintended to identify essential features of the claimed subject matter,nor is it intended for use in determining the scope of the claimedsubject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of techniques and devices for detecting twist input with aninteractive cord are described with reference to the following drawings.The same numbers are used throughout the drawings to reference likefeatures and components:

FIG. 1 is an illustration of an example environment in which techniquesusing, and objects including, an interactive cord may be implemented.

FIG. 2 illustrates additional environments in which an interactive cordmay be implemented.

FIG. 3 illustrates an example of a conductive yarn in accordance withone or more implementations.

FIG. 4 illustrates examples of a fabric cover in accordance with one ormore implementations.

FIG. 5 illustrates an example system configured to detect touch input toa capacitive touchpoint of a fabric cover.

FIG. 6 illustrates examples of providing touch input to a fabric coverof an interactive cord in accordance with one or more implementations.

FIG. 7 illustrates an example system for using an interactive cord toauthenticate a user.

FIG. 8 illustrates an example system for distinguishing intentionaltouch input to the interactive cord from accidental contact

FIG. 9 illustrates examples of twist input and slide input provided toan interactive cord.

FIG. 10 illustrates an example of an interactive cord that is configuredto detect twist input in accordance with one or more implementations.

FIG. 11 illustrates an additional example of an interactive cord that isconfigured to detect twist input in accordance with one or moreimplementations.

FIG. 12 illustrates an example of an interactive cord that is configuredto detect slide input.

FIG. 13 illustrates an example method of triggering a function based ontouch input to a capacitive touchpoint of an interactive cord.

FIG. 14 illustrates an example method of controlling audio to a headsetbased on touch input to an interactive cord of the headset.

FIG. 15 illustrates an example method of authenticating a user based ona touch input pattern provided to an interactive cord.

FIG. 16 illustrates an example method of distinguishing intentionaltouch input to one or more capacitive touchpoints from accidentalcontact.

FIG. 17 illustrates an example method of detecting twist input with aninteractive cord.

FIG. 18 illustrates various components of an example computing systemthat can be implemented as any type of client, server, and/or computingdevice as described with reference to the previous FIGS. 1-17 toimplement detecting twist input with an interactive cord.

DETAILED DESCRIPTION

Overview

This document describes techniques and devices for detecting twist inputwith an interactive cord. An interactive cord includes a cable, and afabric cover that covers the cable. The interactive cord may beimplemented as a variety of different types of cords, such as a cord forheadphones, earbuds, data transfer, lamps, clocks, radios, fans, and soforth. The fabric cover includes conductive yarns which are configuredto enable reception of touch input that causes a change in one or morecapacitance values associated with the conductive yarns. A controller,implemented at the interactive cord or a computing device coupled to theinteractive cord, can detect the change in the capacitance values andtrigger one or more functions associated with the change in capacitancevalues. For example, when implemented as a cord for a headset (e.g.,headphones or ear buds), the controller can control audio to theheadset, such as by playing the audio, pausing the audio, adjusting thevolume of the audio, skipping ahead in the audio, skipping backwards inthe audio, skipping to additional audio, and so forth.

Creating an interactive cord that can detect various types of touchinput eliminates moving parts, hardware, bulk, unsightliness, andthickness found in existing in-line controls for cords. At the sametime, the cost to manufacture the in-line controls is reduced becausethere are no extra hardware controls that must be electricallyconnected. Furthermore, the controller can be implemented to detectdifferent types of touches to the conductive yarns (e.g., hard pressesversus light taps, pinches, or combinations or sequences of touches)thereby increasing the total number of different functions that can betriggered from the interactive cord.

In order to further increase the types of touch input that can bedetected, the interactive cord can be configured to detect twist inputcaused by the user twisting or rotating the interactive cord. To do so,the interactive cord may be constructed with one or more conductiveyarns wrapped around the cable in a first direction (e.g., clockwise),and one or more conductive yarns wrapped around the cable in a seconddirection that is opposite the first direction (e.g.,counter-clockwise). The controller measures one or more capacitancevalues associated with the conductive yarns. In response to detecting achange in the one or more capacitance values, the controller determinesthat the change in the capacitance values corresponds to twist inputcaused by the user twisting or rotating the interactive cord. In somecases, the controller can also determine the direction of the twistinput (e.g., clockwise or counter-clockwise). Then, the controllerinitiates one or more functions based on the twist input, such asincreasing or decreasing the volume, scrolling through menu items, andso forth. In some cases, the interactive cord can be further configuredto detect slide input caused by the user sliding their fingers along theinteractive cord, and distinguish the twist input from the slide input.

In one or more implementations, the interactive cord can be configuredto detect twist input by constructing the cord with an inner layercomprising a cable and one or more conductive yarns wrapped around thecable in a first direction, and an outer layer comprising one or moreconductive yarns wrapped around the inner layer in a second directionthat is opposite the first direction. In order to detect twist input anda direction of the twist input, the controller measures a capacitancevalue between the conductive yarns of the inner layer and the outerlayer. In response to detecting an increase in the capacitance value,the controller determines that the increase in capacitance correspondsto twist input in the same direction as the second direction of theconductive yarns of the outer layer. In contrast, in response todetecting a decrease in the capacitance value, the controller determinesthat the decrease in capacitance corresponds to twist input in theopposite direction as the second direction of the conductive yarns ofthe outer layer. As described above, the controller may then initiatedifferent functionalities based on the detection of twist input, as wellas the direction of the twist input, such as by increasing the volume ifthe interactive cord is twisted in a counter-clockwise direction, ordecreasing the volume if the interactive cord is twisted in a clockwisedirection.

Example Environment

FIG. 1 is an illustration of an example environment 100 in whichtechniques using, and objects including, an interactive cord may beimplemented. Environment 100 includes an interactive cord 102, which isillustrated as a cord for a headset. While interactive cord 102 will bedescribed as a cord for a headset, such as earbuds or headphones, it isto be noted that interactive cord 102 may be utilized for variousdifferent types of uses, such as cords for appliances (e.g., lamps orfans), USB cords, SATA cords, data transfer cords, power cords, or anyother type of cord that is used to transfer data or media.

Consider, for example, FIG. 2 which illustrates additional environmentsin which interactive cord 102 can be implemented. At an environment 200,interactive cord 102 is implemented as a data transfer cord configuredto transfer data (e.g., media files) between a computer 202 and a mobiledevice 204. In this example, interactive cord 102 may be configured toreceive touch input usable to initiate the transfer, or pause thetransfer, of data between computer 202 and mobile device 204.

As another example, at an environment 206, interactive cord 102 isillustrated as a power cord for a lamp 208. In this example, interactivecord 102 may be configured to receive touch input usable to turn on andoff the lamp and/or to adjust the brightness of the lamp.

Returning to FIG. 1, interactive cord 102 includes a fabric cover 104which is configured to cover a cable 106 of interactive cord 102. InFIG. 1, a cutaway shows an example of fabric cover 104 and cable 106beneath the cover. In this example, cable 106 is configured tocommunicate audio data to headset. In other implementations, however,cable 106 is can be implemented to transfer power, data, and so forth.

Instead of using separate hardware controls, fabric cover 104 isconfigured to sense touch input using capacitive sensing. To do so,fabric cover 104 includes one or more conductive yarns 108 that arewoven, braided, or otherwise integrated with the fabric of fabric cover104. Generally, conductive yarn 108 corresponds to yarn that isflexible, but includes a wire that changes capacitance in response tohuman input. For example, when a finger of a user's hand approachesconductive yarn 108, the finger causes the capacitance of conductiveyarn 108 to change.

Consider, for example, FIG. 3 which illustrates an example 300 ofconductive yarn 108 in accordance with one or more implementations. Inthis example, conductive yarn 108 includes a conductive wire 302 that iscombined with one or more flexible yarns 304. Conductive wire 302 may becombined with flexible yarns 304 in a variety of different ways, such asby twisting flexible yarns 304 with conductive wire 302, wrappingflexible yarns 304 with conductive wire 302, braiding or weavingflexible yarns 304 to form a cover that covers conductive wire 302, andso forth. Conductive wire 302 may be implemented using a variety ofdifferent conductive materials, such as copper, silver, gold, aluminum,or other materials coated with a conductive polymer. Flexible yarn 304may be implemented as any type of flexible yarn or fiber, such ascotton, wool, silk, nylon, polyester, and so forth.

Combining conductive wire 302 with flexible yarn 304 causes conductiveyarn 108 to be flexible and stretchy, which enables conductive yarn 108to be easily woven with one or more non-conductive yarns 110 (e.g.,cotton, silk, or polyester) to form fabric cover 104. Alternately, in atleast some implementations, fabric cover 104 can be formed using onlyconductive yarns 108.

In one or more implementations, to enable fabric cover 104 to sensetouch input, the fabric cover is constructed with one or more capacitivetouchpoints 112. As described herein, capacitive touchpoints 112correspond to positions on fabric cover 104 that will cause a change incapacitance to conductive yarn 108 when a user's finger (or otherconductive surface or material) touches, or comes in close contact with,capacitive touchpoint 112.

In one or more implementations, the weave or braid pattern of fabriccover 104 exposes conductive yarn 108 at the capacitive touchpoints 112.In FIG. 1, for example, conductive yarn 108 is exposed at capacitivetouchpoints 112, but is otherwise not visible. In some implementations,two or more conductive yarns 108 may be substantially parallel to eachother at capacitive touchpoints 112, but twisted together at other areasof fabric cover 104. The various ways in which capacitive touchpoints112 can be integrated within fabric cover 104 are discussed in greaterdetail, below, with regards to FIG. 4.

Capacitive touchpoints 112 may be formed with a visual or tactile cue toenable the user to easily recognize the location of the capacitivetouchpoint 112. In FIG. 1, for instance, conductive yarns 108 are shownas being a different color (black) than the non-conductive yarns 110(white), thereby providing a visual cue to the user as to where thecapacitive touchpoint is located.

In environment 100, interactive cord 102 includes earbuds 114 and aconnector 116 that is configured to be plugged into a computing device118. Computing device 118 is illustrated as a mobile phone, but may alsobe configured as a desktop computer, a laptop computer, a tablet device,a wearable device, and so forth. Thus, computing device 118 may rangefrom full resource devices with substantial memory and processorresources (e.g., personal computers, game consoles) to low-resourcedevices with limited memory and/or processing resources (e.g., mobiledevices).

Computing device 118 is illustrated as including a controller 120 whichis representative of functionality to sense touch input to capacitivetouchpoints 112 of interactive cord 102, and to trigger variousfunctions based on the touch input. For example, when interactive cord102 is implemented as a cord for a headset, controller 120 can beconfigured to, in response to touch input to capacitive touchpoints 112,start playback of audio to the headset, pause audio, skip to a new audiofile, adjust the volume of the audio, and so forth. In FIG. 1 controller120 is illustrated as being implemented at computing device 118,however, in alternate implementations, controller 120 may be integratedwithin interactive cord 102, or implemented with another device, such aspowered headphones, a lamp, a clock, and so forth.

Having discussed an example environment 100 in which interactive cord102 may be implemented, consider now a more-detailed discussion offabric cover 104.

Fabric cover 104 may be formed in a variety of different ways. In one ormore implementations, the weave or braid pattern of fabric cover 104causes conductive yarns 108 to be exposed at capacitive touchpoints 112,but covered and hidden from view at other areas of fabric cover 104.

Consider, for example, FIG. 4 which illustrates examples 400 of fabriccover 104 in accordance with one or more implementations. In a firstexample, at 402, fabric cover 104 includes a single conductive yarn, orsingle set of conductive yarns 108, woven with non-conductive yarns 110,to form capacitive touchpoints 112. Notably, the one or more conductiveyarns 108 correspond to a first color (black) which is different than asecond color (white) of non-conductive yarns 110 woven into the fabriccover.

In this example, the weave pattern of fabric cover 104 exposesconductive yarn 108 at capacitive touchpoints 112 along fabric cover104. However, conductive yarn 108 is covered and hidden from view atother areas of fabric cover 104. Touch input to any of capacitivetouchpoints 112 causes a change in capacitance to conductive yarn 108,which may be detected by controller 120. However, touch input to otherareas of fabric cover 104 formed by non-conductive yarn 110 does notcause a change in capacitance to conductive yarn 108.

In one or more implementations, fabric cover 104 includes at least afirst conductive yarn 108 and a second conductive yarn 108. The firstconductive yarn 108 is substantially parallel to the second conductiveyarn at one or more capacitive touchpoints 112 of fabric cover 104, buttwisted with second conductive yarn 108 at other areas of fabric cover104. Capacitive touchpoints 112 are formed at the areas of fabric cover104 at which the first and second conductive yarns are parallel to eachother because bringing a finger close to capacitive touchpoints 112 willcause a difference in capacitance that can be detected by controller120. However, in the regions where conductive yarns 108 are twisted, thecloseness of the finger to conductive yarns 108 has equal effect on thecapacitance of both conductive yarns 108, which avoids false triggeringif the user touches the conductive yarn 108. Notably, therefore,conductive yarn 108 may not need to be covered by non-conductive yarn110 in this implementation.

Visual cues can be formed within fabric cover 104 to provide anindication to the user as to where to touch interactive cord 102 toinitiate various functions. In one or more implementations, conductiveyarns 108 correspond to one or more first colors which are differentthan one or more second colors of non-conductive yarns 110 woven intofabric cover 104. For example, at 402, the color of conductive yarn 108is black, whereas the remainder of the fabric cover is white, whichenables the user to recognize where to touch fabric cover 104.Alternately or additionally, the one or more conductive yarns 108 can bewoven into fabric cover 104 to create one or more tactile capacitivetouchpoints by knitting or weaving of the yarn to create a tactile cuethat can be felt by the user. For example, capacitive touchpoints 112can be formed to protrude slightly from fabric cover 104 in a way thatcan be felt by the user when touching interactive cord 102.

In the example fabric cover 104 illustrated at 402, controller 120 isable to detect touch input to the various capacitive touchpoints 112.However, controller 120 may be unable to distinguish touch input to afirst capacitive touchpoint 112 from touch input to a second, different,capacitive touchpoint 112. In this implementation, therefore, the numberof functions that can be triggered using interactive cord 102 islimited.

However, capacitive touchpoints 112 that are electrically distinct canbe made by incorporating multiple sets of conductive yarns 108 intofabric cover 104 to create multiple different capacitive touchpoints 112which can be distinguished by controller 120. For example, fabric cover104 may include one or more first conductive yarns 108 and one or moresecond conductive yarns 108. The one or more first conductive yarns 108can be woven into fabric cover 104 such that the one or more firstconductive yarns 108 are exposed at one or more first capacitivetouchpoints 112, and the one or more second conductive yarns 108 can bewoven into fabric cover 104 such that the one or more second conductiveyarns 108 are exposed at one or more second capacitive touchpoints 112.Doing so enables controller 120 to distinguish touch input to the one ormore first capacitive touchpoints 112 from touch input to the one ormore second capacitive touchpoints 112.

As an example, at 404 fabric cover 104 is illustrated as includingmultiple electrically distinct capacitive touchpoints 112, which arevisually distinguished from each other by using yarns of differentcolors and/or patterns. For example, a first set of conductive yarn iscolored black with dots to form capacitive touchpoints 112-1, a secondset of conductive yarn is gray with dots to form capacitive touchpoints112-2, and a third set of conductive yarn is colored white with dots toform capacitive touchpoints 112-3. The weaving pattern of fabric cover104 surfaces capacitive touchpoints 112-1, 112-2, and 112-3 at regularintervals along fabric cover 104 of interactive cord 102.

In this case, each of the different capacitive touchpoints 112-1, 112-2,and 112-3 may be associated with a different function. For example, theuser may be able to touch capacitive touchpoint 112-1 to trigger a firstfunction (e.g., playing or pausing a song), touch capacitive touchpoint112-2 to trigger a second function (e.g., adjusting the volume of thesong), and touch capacitive touchpoint 112-3 to trigger a third function(e.g., skipping to a next song).

In some cases, a combination, sequence, or pattern of touches tocapacitive touchpoints 112 may trigger different functions. For example,the user may be able to touch capacitive touchpoints 112-1 and 112-2 atthe same time in order to trigger a fourth function (e.g., fastforwarding the song).

Fabric cover 104 can be formed using a variety of different weaving orbraiding techniques. In example 404, fabric cover 104 is formed byweaving the one or more conductive yarns into fabric cover 104 using aloop braiding technique. Doing so causes the one or more capacitivetouchpoints to be formed by one or more split loops. In example 404,fabric cover 104 includes 3 different split loops, one for each of thethree different types of conductive yarns to form capacitive touchpoints112-1, 112-2, and 112-3. The split loops are placed at particularlocations in the pattern to provide isolation between the conductiveyarns and align them in a particular way. Doing so produces a hollowbraid in mixed tabby, and 3/1 twill construction. This gives columns(“wales”) along the length of the braid which exposes lengths of thedifferent fibers. This pattern ensures that each of the conductive yarns108 are in an isolated conductive area, which enables controller 120 toeasily detect which conductive yarn 108 is being touched, and which isnot, at any given time.

Audio signals are particularly vulnerable to RF interference. Thus,cords for headsets, cable TV, and other types of audio/visual wiringoften contain foil or stranded wire wrapped around the signal conductorsto protect the signal from radio frequency interference and to providean electrical ground. Headset cords and other media cords also oftenhave a woven fabric outer layer to provide some physical protection tothe electrical cords, to help avoid tangling, and to improve the feeland appearance of the wires.

Thus, in one or more implementations, fabric cover 104 acts as an RFshield for cable 106, thereby reducing the need to manufactureinteractive cord 102 with a separate RF shield. In addition, fabriccover 104 creates an attractive and protective covering for interactivecord 102 that also helps to prevent tangling.

Having discussed various examples of fabric cover 104, consider now amore-detailed discussion of how controller 120 detects touch input tofabric cover 104 to trigger various functions.

Generally, controller 120 is configured to monitor the one or moreconductive yarns 108 of fabric cover 104 to detect a change incapacitance to conductive yarns 108 which corresponds to touch input tocapacitive touchpoints 112.

FIG. 5 illustrates an example system 500 configured to detect touchinput to a capacitive touchpoint of a fabric cover. In system 500, touchinput 502 is provided to one or more capacitive touchpoints 112 offabric cover 104.

By way of example, consider FIG. 6, which illustrates examples 600 ofproviding touch input to a fabric cover of an interactive cord inaccordance with one or more implementations. At 602, a finger 604 of auser's hand provides touch input by touching a capacitive touchpoint 112of fabric cover 104 of interactive cord 102. In some cases, the touchinput can be provided by moving finger 604 close to capacitivetouchpoint 112 without physically touching the capacitive touchpoint.

A variety of different types of touch input 502 may be provided. In oneor more implementations, touch input 502 may correspond to a pattern orseries of touches to fabric cover 104, such as by touching a firstcapacitive touchpoint 112 followed by touching a second capacitivetouchpoint 112. In one or more implementations, different types of touchinput 502 may be provided based on the amount of pressure applied tocapacitive touchpoint 112. As an example, at 606 an index finger 608 anda thumb 610 of the user's hand provides touch input by pinching acapacitive touchpoint 112 of fabric cover 104. Doing so may trigger afunction that is different than a function triggered by simply touchingor tapping capacitive touchpoint 112. In one or more implementations, afirst touch to capacitive touchpoint 112 may cause the controller 120 togenerate an audible alert that lets the user know that if a second tapis provided to the same capacitive touchpoint, the touch will beregistered. For example, the user might tap a capacitive touchpoint 112,and in response hear a “volume up”, indicating that this touchpoint iscorrelated to turning the volume up. The user may then then squeeze thesame touchpoint in order to confirm the volume up command. In this way,the user is less likely to initiate the controls unintentionally.

Returning to FIG. 5, at 504 controller 120 detects a change incapacitance to conductive yarn 108, associated with capacitivetouchpoint 112, when touch input 502 is provided to capacitivetouchpoint 112 of fabric cover 104. To sense touch input 502, controller120 may use a capacitance meter that can detect the change incapacitance of a single conductive yarn or between two conductive yarnsdisposed parallel to each other. Generally, when a finger touches, orcomes in close contact to, capacitive touchpoint 112, a capacitance isformed between the finger and the associated conductive yarn 108. Thiscapacitance may be detected by the capacitance meter of controller 120to determine that the touch input has occurred.

Controller 120 may be implemented to detect the change in capacitance ina variety of different ways. In one or more implementations, controller120 can be implemented to detect a change in capacitance between twoconductive yarns 112 woven into interactive cord 102. As describedabove, two conductive yarns 108 can be placed parallel or interlaced toeach other at capacitive touchpoints 112. In this case, one of theconductive yarns 108 can be grounded and the other conductive yarn 108can be connected to the capacitance meter. Initially, the capacitancemeter will measure a small baseline capacitance between the twoconductive yarns. However, when a finger of the user's hand touches theconductive yarns at capacitive touchpoint 112, a capacitive couplingoccurs with each of the conductive yarns 108. In response, thecapacitance meter detects a new combined capacitance which is largerthan the small baseline capacitance. This change in capacitance enablescontroller 120 to detect touch input 502.

In one or more implementations, controller 120 can determine the amountof pressure applied to capacitive touchpoint 112, which may enablecontroller 120 to distinguish a light tap from a hard press or pinch.For example, if the finger is pressed harder, or if two fingers pinchcapacitive touchpoint 112, the capacitance meter will detect an evengreater capacitance value. Thus, controller 120 can determine whethertouch input 502 corresponds to a tap or a pinch by comparing thedetected capacitance to predetermined capacitance thresholds for a touchor pinch.

In one or more implementations, controller 120 can be implemented tomonitor and detect the change in capacitance of a single conductive yarn108 woven into interactive cord 102. In this case, the single conductiveyarn 108 is not grounded. When not being touched, only a small baselinecapacitance exists which may be measured by the capacitance meter. Whena user's finger comes in the vicinity of the conductive yarn 108,however, a touch input capacitance is formed between the fingertip andthe conductive yarn. This capacitance is electrically connected inparallel to the baseline capacitance, causing the capacitance meter todetect the touch input. Similar to when the capacitance is measuredbetween two conductive yarns, a stronger pressing will create a largercapacitance. This method may be more resistant to false touches due tomoisture (e.g., rain or sweat) permeating fabric cover 104.

At 506, in response to detecting the change in capacitance, controller120 triggers a function associated with touch input 502. Notably,controller 120 can trigger a variety of different types of functionsbased on the how interactive cord 102 is being utilized. For example,when interactive cord 102 corresponds to a cord for a headset,controller 120 may trigger functions such as playing audio (e.g., asong, video, audiobook file, or voice memo), pausing audio, fastforwarding audio, skipping to a next audio track, adjusting the volumeof the audio, and so forth. As another example, when interactive cordcorresponds to a data transfer cord, controller 120 may triggerfunctions such as starting the transfer of data, stopping the transferof data, authenticating the user to enable the transfer of data, and soforth. When interactive cord 102 corresponds to a cord for an appliance(e.g., a lamp, a fan, or an alarm clock), controller 120 may triggerfunctions such as turning on or off the appliance, adjusting thebrightness of a lamp, adjusting the speed of a fan, hitting the snoozebutton on an alarm clock, and so forth.

As described throughout, different functions may be mapped to differenttypes of touch input to fabric cover 104 of interactive cord 102. Insome cases, a specific function may be associated with a specificcapacitive touchpoint 112. For instance, in example 404 of FIG. 4, theuser may be able to touch first capacitive touchpoint 112-1 to trigger afirst function (e.g., playing or pausing a song), touch secondcapacitive touchpoint 112-2 to trigger a second function (e.g.,adjusting the volume of the song), and touch third capacitive touchpoint112-3 to trigger a third function (e.g., skipping to a next song).

In some cases, functions may be associated with various combinations,sequences, or patterns of touch input to multiple touchpoints. Forexample, a function may be associated with first touching capacitivetouchpoint 112-1, and then sliding the user's finger to secondcapacitive touchpoint 112-2.

In some cases, the function that is triggered may be based on thepressure applied to capacitive touchpoints 112. For example, a firstfunction may be associated with tapping a capacitive touchpoint 112, anda second function may be associated with squeezing or pinching the samecapacitive touchpoint.

In one or more implementations, interactive cord 102 can be used toauthenticate a user. For example, rather than requiring a password to beentered into a computing device, a touch input pattern can be providedto interactive cord 102 to authenticate the user.

Consider, for example, FIG. 7 which illustrates an example system 700for using an interactive cord to authenticate a user. In system 700, atouch input pattern 702 is provided to one or more capacitivetouchpoints 112 of fabric cover 104. For example, a finger of a user'shand can provide touch input pattern 702 by touching, or moving closeto, one or more capacitive touchpoint 112 of fabric cover 104 ofinteractive cord 102. Touch input pattern 702 may be provided inresponse to a request for authentication, which may be initiated bycontroller 120 when interactive cord 102 is plugged in to computingdevice 118, or any time that computing device 118 is locked.

At 704, controller 120 recognizes the touch input pattern by detecting achange in capacitance to conductive yarn 108, associated with the one ormore capacitive touchpoints 112 of fabric cover 104. Controller 120 candetect the change in capacitance using similar techniques as thosedescribed above with regards to FIGS. 5 and 6.

At 706, controller 120 compares the detected touch input pattern 702 toa stored touch authentication pattern associated with an authenticateduser state, and at 708, controller 120 authenticates the user if thedetected touch input pattern 702 matches the stored touch authenticationpattern. For example, the user may have previously provided touchauthentication pattern to controller 120 by providing touch input tofabric cover 104 of interactive cord 102. Thus, controller 120determines whether the detected touch input pattern 702 matches thestored touch authentication pattern. If controller 120 determines amatch, then the user is authenticated. In one more implementations, theuser may remain authenticated until expiration of a timeout, removal ofinteractive cord 102 from computing device 118, or by removinginteractive cord 102 from the body (e.g., removing earbuds from theuser's ear).

Controller 120 is configured to recognize a variety of different typesof touch input patterns 702. In one or more implementations, touch inputpattern 702 includes tapping one or more capacitive touchpoints 112 witha particular rhythm. For example, the user can tap one or morecapacitive touchpoints 112 with a specific rhythm, such as a rhythmcorresponding to a certain beat or song.

Alternately or additionally, touch input pattern 702 may includetouching absolute positions of capacitive touchpoints 112 on fabriccover 104. For example, the user can touch multiple different ones ofthe capacitive touchpoints in a specific sequence. In FIG. 4, forexample, the user could touch capacitive touchpoint 112-2, thencapacitive touchpoint 112-1, and finally capacitive touchpoint 112-3.

Alternately or additionally, touch input pattern 702 may includetouching relative positions of capacitive touchpoints 112 on fabriccover 104. For example, rather than touching specific capacitivetouchpoints 112, the user could touch a first capacitive touchpoint 112,then touch a second capacitive touchpoint 112 that is positioned belowthe first capacitive touchpoint on fabric cover 104, and then touch athird capacitive touchpoint 112 that is positioned between the first andsecond capacitive touchpoints 112.

Alternately or additionally, touch input pattern 702 may includeapplying a particular amount of pressure to the capacitive touchpoints112 on fabric cover 104. For example, the user could apply differenttypes of pressure to capacitive touchpoints 112, such as by pinching thecapacitive touchpoint 112.

Alternately or additionally, touch input pattern 702 may include slidingfrom one capacitive touchpoint 112 to another capacitive touchpoint. Forinstance, in FIG. 4, the user could first touch capacitive touchpoint112-1 and then slide their finger to capacitive touchpoint 112-3 alongfabric cover 104.

Alternately or additionally, touch input pattern 702 may includetouching multiple capacitive touchpoints 112 at substantially the sametime. For example, the user could touch specific capacitive touchpoints112 at the same. Alternately, the user could grab interactive cord 102with a specific handgrip that would have the effect of touching multipledifferent capacitive touchpoints 112.

Alternately or additionally, touch input pattern 702 may include causingone capacitive touchpoint 112 to touch one or more other capacitivetouchpoints 112. For example, the user could bend interactive cord 102such that a first capacitive touchpoint 112 makes contact with a secondcapacitive touchpoint 112.

Notably, the aforementioned techniques for providing touch input pattern702 may be combined in different ways for authentication based on thelevel of security and/or the preferences of the user.

Interactive cord 102 may be used to authenticate the user in a varietyof different scenarios. When interactive cord 102 is implemented as acord for a headset, touch input pattern 702 may be used to authenticatethe user to listen to audio using the headset. For example, assume thata user of a smart phone wishes to access audio of a sensitive internalmeeting. In this case, when interactive cord 102 is implemented as acord for a headset that is plugged into the smart phone, a touch inputpattern 702 can be required to log in to a secure area of the mobilephone which contains the sensitive audio. As another example, usersoften need to backup or copy sensitive data from one device to another.In this scenario, interactive cord 102 may be implemented as a datatransfer cord that prevents unauthorized copying of data. Thus, in orderto copy data from one device to another, the user would need to providethe correct touch input pattern 702 to the data transfer cord. Asanother example, parents often want to prevent their children fromaccessing stored or live media. In this scenario, the user could beunable to access certain stored or live media without providing thecorrect touch input pattern to interactive cord 102 of their headphonesor earbuds.

Preventing False Positives

In accordance with various implementations, interactive cord 102 isconfigured to prevent “false positives”, which may occur when theinteractive cord 102 comes in contact with a human body or a conductivesurface. For example, when interactive cord 102 is implemented as a cordfor headphones, the interactive cord 102 may make contact with theuser's neck or chest if the cord is placed under the user's shirt. Inthese instances, the contact of the user's skin with the touchpoints 112of fabric cover 104 may cause a change in capacitance.

In one or more implementations, the structure of fabric cover 104 ofinteractive cord 102 is designed to prevent accidental contact with thecapacitive touchpoints 112 by using non-conductive yarns 110 of fabriccover 104 to shield the capacitive touchpoints 112 from accidentalcontact. To do so, thick non-conductive yarns 112 may be braided aroundthinner conductive yarns 108 thereby forming ridges that shieldcapacitive touchpoints 112 making it virtually impossible for accidentalcontact. In this case, in order to provide touch input, the user canfeel for the areas between these ridges in order to trigger anintentional touch to a capacitive touchpoint 112. Notably, there are avariety of different ways in which the fabric cover 104 may be formed toshield the touchpoints 112, such as by creating a spiral sheath that canprotect recessed conductive touchpoints from accidental touches,creating flat braids that shield the capacitive touchpoints, and soforth.

Alternately or additionally, to prevent accidental contact fromtriggering a false positive, controller 120 can be implemented todistinguish intentional touch input to the touchpoints 112 fromaccidental contact. This can be accomplished in a variety of differentways.

In one or more implementations, the conductive yarn 108 is insulated,and thus an intentional pinch or touch on a touchpoint 112 causes arelatively large change in capacitance, whereas resting the fabric cover104 on the user's skin causes a relatively small change in capacitance.In this case, a capacitance threshold may be calculated such that anintentional touch or pinch to a touchpoint 112 causes a change incapacitance that is greater than the capacitance threshold, whereasaccidental contact with a touchpoint 112 causes a change in capacitancethat is less the capacitance threshold. Controller 120 can beimplemented to determine an intentional touch by detecting an amount ofa change in capacitance, and comparing the amount of the change incapacitance to the capacitance threshold. If the amount of the change incapacitance is above the capacitance threshold, then controller 120determines that the change in capacitance corresponds to an intentionaltouch. Alternately, if the amount of the change in capacitance is belowthe capacitance threshold, then controller 120 determines that thechange in capacitance corresponds to accidental contact (e.g., fromfabric cover 104 resting against the user's skin).

In one or more implementations, fabric cover 104 of interactive cord 102is designed to have at least two distinct sides. For example, the fabriccover 104 may be formed as a flat braid structure with a front and backside. In this case, touchpoints 112 are surfaced on each side of fabriccover 104, and controller 120 can determine an intentional touch bydetecting a change in capacitance to touchpoints 112 on each side offabric cover 104. For example, pinching the interactive cord 102 willtrigger a change in capacitance for touchpoints 112 on each side of thecord. Thus, if a change of capacitance is detected on just a single sideof the interactive cord 102, controller 120 can determine that thistouch corresponds to accidental contact.

In one or more implementations, controller 120 is configured torecognize an intentional touch when touch input is detected by twocapacitive touchpoints 112 on immediately opposite sides of fabric cover104 being touched simultaneously. For example, controller 120 can detectan intentional touch if a change in capacitance is detected totouchpoints 112 on the first side and second side of the fabric cover104 within a distance threshold to each other. The distance thresholdensures that capacitive touchpoints 112 that are touched are withinclose proximity to each other. In this case, any other pattern of touchinput (e.g., several touches on one side followed by several touches onthe other side linearly separated along the length of the cord) arerecognized as accidental contact, which may occur for example from atwisted cord resting against the user's skin.

Controller 120 can detect that two touch points are on immediatelyopposite sides of fabric cover 104 in a variety of different ways. Inone or more implementations, fabric cover 104 includes multipletouchpoints. For example, as discussed above with regards to 404 of FIG.4, fabric cover 104 may be configured with multiple electricallydistinct capacitive touchpoints 112, which enables controller 120 todistinguish touch input to each of the different electrically districttouchpoints 112. In this case, the multiple capacitive touchpoints 112may be linearly arranged on a first side of the fabric cover 104 in arepeating pattern (e.g., “ABCABCABC”), and the multiple capacitivetouchpoints 112 may be linearly arranged on a second side of the fabriccover 104 in a different repeating pattern (e.g., “CABCABCAB”).Controller 120 can detect opposing touchpoints 112 in the first positionwould be C and A being triggered together. If, however, A, B, and C aremeasuring a touch, then it is likely that accidental contact is causingthe change in capacitance.

In one or more implementations, two touch circuits, e.g., A and B, maybe arranged on opposite sides of the fabric cover 104. In this example,once a capacitive touch is registered on A and B, the circuits canswitch to resistive sensing and attempt to determine the distance alongthe fabric cover at which the touches are detected. If the distances areapproximately the same, then a true touch on both sides is registered.If not, then controller 120 ignores the touches, as they are likely theresult of accidental contact caused by touchpoints 112 on a twisted cordlying along the skin or contact with water or metal.

As described throughout, controller 120 is configured to initiate afunction associated with touched capacitive touchpoints 112 in responseto determining that a touch corresponds to intentional touch input.However, if it is determined that the touch corresponds to accidentalcontact, controller 120 may simply ignore the accidental contact therebyreducing the number of false positives. Alternately, controller 120 mayuser the accidental contact as context information to determine a stateof interactive cord 102. Controller 120 may then initiate one or moredifferent functions based on the state of the interactive cord. Forexample, when implemented as a cord for headphones, the controller 120may determine that the accidental contact corresponds to interactivecord 102 lying against the user's skin, and as such determine that thestate of the interactive cord corresponds to the user wearing theheadphones. As such, based on this determined state, controller 120 canswitch the state of interactive cord 102 from a power-savings state toan active state.

FIG. 8 illustrates an example system 800 for distinguishing intentionaltouch input to the interactive cord from accidental contact. In system800, a touch 802 is provided to one or more capacitive touchpoints 112of fabric cover 104. As described throughout out, a user may provideintentional touch input to the capacitive touchpoints 112 in a varietyof different ways. However, a touch may also occur from accidentalcontact with the one or more capacitive touchpoints 112.

At 804 controller 120 detects a change in capacitance to conductive yarn108, associated with one or more capacitive touchpoints 112 that aretouched. As described throughout, controller 120 may detect the changein capacitance in a variety of different ways.

At 806, controller 120 determines whether the change in capacitancecaused by the touch 802 corresponds to intentional touch input to theone or more capacitive touchpoints 112 or accidental contact with theone or more capacitive touchpoints 112.

At 808, if controller 120 determines that the change in capacitancecorresponds to intentional touch input at 806, then controller 120triggers a function associated with the intentional touch input. Asdescribed throughout, controller 120 can trigger a variety of differenttypes of functions based on the how interactive cord 102 is beingutilized. For example, when interactive cord 102 corresponds to a cordfor a headset, controller 120 may trigger functions such as playingaudio (e.g., a song, video, audiobook file, or voice memo), pausingaudio, fast forwarding audio, skipping to a next audio track, adjustingthe volume of the audio, and so forth. As another example, wheninteractive cord corresponds to a data transfer cord, controller 120 maytrigger functions such as starting the transfer of data, stopping thetransfer of data, authenticating the user to enable the transfer ofdata, and so forth. When interactive cord 102 corresponds to a cord foran appliance (e.g., a lamp, a fan, or an alarm clock), controller 120may trigger functions such as turning on or off the appliance, adjustingthe brightness of a lamp, adjusting the speed of a fan, hitting thesnooze button on an alarm clock, and so forth.

Alternately, at 810, if controller 120 determines that the change incapacitance corresponds to accidental contact at 806, then controller120 may ignore the accidental contact or use the accidental contact ascontext information to determine a state of the interactive cord. Forexample, controller 120 may determine that the accidental contactcorresponds to the cord of a pair of headphones touching the user'sskin, and thus switch from a power savings state to an active state.

Detecting Twist Input

In one or more implementations, controller 120 is configured to detecttwist input, and in some cases slide input, to interactive cord 102.Twist input, as used herein, corresponds to input that is detected bycontroller 120 when the user “twists” or “rotates” interactive cord 102between the user's fingers. Slide input, as used herein, corresponds toinput that is detected by controller 120 when the user “slides” theirfingers along the interactive cord 102.

Consider, for example, FIG. 9, which illustrates examples 900 of twistinput and slide input provided to interactive cord 102. At 902, a firstexample is illustrated in which a user provides twist input by twistingor rotating interactive cord 102 in their fingers (e.g., by rolling theinteractive cord 102 between their thumb and index finger), eitherclockwise at 904 or counter-clockwise at 906. Controller 120 isconfigured to detect the twist input by detecting a change in one ormore capacitance values associated with the conductive yarns 108 thatare touched by the user's fingers when providing the twist input.Controller 120 may also be implemented to detect the direction of thetwist input. For example, controller 120 can detect that the twist inputcorresponds to a first direction (e.g., clockwise in response to theuser twisting the cord clockwise as shown at 904). Similarly, controller120 can detect that the twist input corresponds to twisting or rotatingthe interactive cord 102 in a second direction that is opposite thefirst direction (e.g., counter-clockwise in response to the usertwisting the interactive cord 102 counter-clockwise as shown at 906).Controller 120 may also be able to detect an amount of the twist input(e.g., a partial twist versus a full twist) and/or a speed of the twistinput (e.g., a slow twist versus a quick twist).

At 908, a second example is illustrated in which a user provides slideinput by sliding the user's fingers on interactive cord 102, either inthe upwards direction at 910 or in the downwards direction at 912.Controller 120 is configured to detect the slide input by detecting achange in capacitance to the conductive yarns 108 that are touched bythe user's fingers when providing the slide input. In one or moreimplementations, controller 120 can detect the direction of the slideinput. For example, controller 120 can detect that the slide inputcorresponds to a first direction (e.g., upwards in response to the usersliding their fingers upwards on the interactive cord 102 as shown at910). Similarly, controller 120 can detect that the slide inputcorresponds to a second direction (e.g., downwards in response to theuser sliding their fingers downwards on the interactive cord 102 asshown at 912). In some cases, controller 120 may also be able to detectan amount of the slide input (e.g., a short slide versus a long slide)and/or a speed of the slide input (e.g., a slow slide versus a quickslide).

By enabling controller 120 to detect twist input and/or slide input,controller 120 is able to initiate a variety of differentfunctionalities or operations. For example, controller 120 can initiatea first function (such as increasing the volume for a headset) inresponse to detecting twist input in a first direction, and can initiatea second function (such as decreasing the volume for the headset) inresponse to detecting twist input in a second direction that is oppositethe first direction. Notably, controller 120 may also initiate thefunctionality based on the amount and/or speed of the twist input. Forexample, the amount that the volume is increased or decreased may bebased on the amount and/or speed of the twist input.

Similarly, controller 120 can initiate a different first function (suchas scrolling upwards through menu items or songs) in response todetecting slide input in a first direction, and can initiate a differentsecond function (such as scrolling downwards through the menu items orsongs) in response to detecting slide input in a second direction thatis opposite the first direction. Controller 120 may initiate thefunctionality based on the amount and/or speed of the slide input. Forexample, the number of menu items that are scrolled through may be basedon the amount and/or speed of the slide input.

Generally, controller 120 is able to distinguish the change incapacitance to conductive yarns 108 that is caused by twist input fromthe change in capacitance to the conductive yarns 108 that is caused byslide input. In some cases, in order to enable controller 120 to moreeasily differentiate between twist input and slide input, cover 104 ofinteractive cord 102 may be formed with two or more conductive yarns 108that are wrapped around cable 104 in opposite directions (e.g.,clockwise and counter-clockwise). In this way, the pattern of conductiveyarns 108 or touchpoints that are touched changes in a different orderbased on the direction of the twist input or slide input.

Additionally, the amount and/or speed of the input can be used todifferentiate twist input from slide input. For example, for twistinput, the speed of the twist starts out fast, but then slows down asthere is only so far that a user can twist the interactive cord due toits stiffness. In contrast, slide input may include a constant speed oran increasing speed as there is no limit on how fast the user can slidetheir fingers along the cord. Similarly, the amount that the user cantwist an interactive cord may be different than the distance that a usercan slide their fingers along the cord. Thus, in some cases, the numberof different conductive yarns or touchpoints that are touched can beused to differentiate twist input from slide input.

The cover 104 of interactive cord 102 can be constructed in a variety ofdifferent ways in order to enable controller 120 to detect twist inputor slide input, while still being able to detect other forms of touchinput, as discussed previously. In one or more implementations, at leasttwo conductive yarns 108 of the interactive cord 102 are wrapped (e.g.,braided or weaved) around the cable 106 in a first direction (e.g.,clockwise), while at least two conductive yarns 108 are rotated aroundthe cable 106 in a second direction (e.g., counter-clockwise) which isopposite the first direction.

As an example, consider FIG. 10, which illustrates an example 1000 of aninteractive cord 102 that is configured to detect twist input inaccordance with one or more implementations. In this example, the cover104 of interactive cord 102 includes four conductive yarns (labeled “a”,“b”, “c”, and “d”) which are wrapped around the cable 106 in a firstdirection (e.g., counter-clockwise), and four conductive yarns labeled(“e”, “f”, “g”, and “h”) which are wrapped around the cable 106 in asecond direction (e.g., clockwise). The gray patterned yarns, in thisexample, correspond to non-conductive yarns 110.

In this example, controller 120 is configured to detect touch inputusing mutual capacitance sensing. To do so, the four conductive yarnsrotated around the cable 106 in the first direction (a, b, c, and d) areimplemented as transmitting (Tx) lines, while the four conductive yarnsrotated around the cable 106 in the second direction (e, f, g, and h)are implemented as receiving (Rx) lines for sensing, or vice versa.Doing so creates a 4×4 repeating matrix over the length of theinteractive cord 102, with 16 unique sensor pairs. Notably, thesetechniques can be applied without loss of generality to interactivecords with 2×2 to N×N conductive yarns. For instance, if the interactivecord 102 were constructed with two conductive yarns 108 in eachdirection, a 2×2 repeating matrix would be created with 4 unique sensorpairs.

To detect twist input, controller 120 performs a scan using sensinghardware to collect the sensor pair values by transmitting a signal oneach of the transmitting lines, one at a time, and then measuring thereceived signal on each of the receiving lines. When interactive cord102 is implemented with 4 conductive yarns 108 in each direction, thisgenerates a set of 16 sensor pair values, denoted as: [(Tx1, Rx1), (Tx1,Rx2), . . . (Tx4, Rx3), (Tx4, Rx4)], where (TxN, RxN) represents themeasured change in capacitance between lines TxN and RxN. For example,in FIG. 10, these sensor pairs would be as follows: (a, e), (a, f), (a,g), (a, h), (b, e), (b, f), (b, g), (b, h), (c, e), (c, f), (c, g), (c,h), (d, e), (e, f), (e, g), (e, h).

For each transmitting line, controller 120 sorts the sensor pair valuesin order from highest to lowest. As an example, consider the followingsorted list of sensor pair values for the Tx1 line:

-   -   (Tx1, Rx3)=1000    -   (Tx1, Rx2)=700    -   (Tx1, Rx4)=404    -   (Tx1, Rx1)=223

The ordering of the sensor pair values for each Tx line can be mapped toa unique order number. For example, when interactive cord 102 isimplemented with four conductive yarns 108 wrapped around the cable ineach direction, this means that there are exactly 24 orderings that arepossible for each transmitting line. Thus, the ordering of eachtransmitting line may be mapped to a unique order number between 1 and24, inclusive. For instance, in the example above, the order of thereceiving lines is 3, 2, 4, 1, which could then be mapped to a uniqueorder number.

As the user twists or rotates the interactive cord 102, the ordering ofthe receiving lines will change, and thus the unique order number willvary (e.g., between 1-24 for cord constructions with 4 lines in eachdirection). Thus, a state transition matrix can be created (24×24 inthis example), where each row represents the prior state, and eachcolumn represents the current state. The matrix may be indexed asfollows: state_matrix[previous][next].

This state transition matrix can be generated for each of thetransmitting lines. Each entry in the state matrix is an integer value,either positive or negative, that indicates the likelihood that a statetransition from “order previous” to “order next” is indicative of arotation or twist, where positive values correspond to rotation in afirst direction (e.g., clockwise) and negative values correspond torotation in a second direction that is opposite the first direction(e.g., counter-clockwise). This state transition matrix can beconstructed by hand, or it can be trained by example, by collectingstate transition data as a user performs rotations in known directions,and updating the matrix according to the transitions that it records.

After performing the scan, sorting the sensor pair values, and assigningthe unique order numbers, controller 120 performs a table lookup, foreach transmitting line, in its associated matrix, where the indices areTxN_order_previous and TxN_order_next. Then, controller 120 adds thevalue found in the matrix to an accumulator which stores the sum of allstate transition likelihood values over time.

Notably, the accumulator will tend towards a large positive number asthe user twists the interactive cord 102 in one direction (e.g.,clockwise), and will tend towards a large negative number as the usertwists the interactive cord 102 in the other direction (e.g.,counter-clockwise). Thus, controller 120 can determine the direction ofthe twist input based on the value returned by the accumulator. In otherwords, if a large positive number is generated by the accumulator, thencontroller 120 determines that twist input corresponds to a clockwisetwist. Similarly, if a large negative number is generated by theaccumulator, then controller 120 determines that the twist inputcorresponds to a counter-clockwise twist. In some cases, of course, thelarge positive number may be instead associated with a counter-clockwisedirection, and the large positive number may be associated with theclockwise direction. Notably, the accumulator is further configured toreset itself to zero when the user has stopped interacting withinteractive cord 102, which can be detected by using a threshold on theoverall signal level, or through various other means.

In one or more implementations, the interactive cord 102 can beconfigured to detect twist input by constructing the interactive cord102 with an inner layer comprising a cable 106 and one or moreconductive yarns 108 wrapped around the cable 106 in a first direction,and an outer layer comprising one or more conductive yarns 108 wrappedaround the inner layer in a second direction that is opposite the firstdirection.

As an example, consider FIG. 11, which illustrates an additional example1100 of an interactive cord 102 that is configured to detect twist inputin accordance with one or more implementations. In this example, a“cut-out” of the interactive cord 102 is depicted, in order to view aninner layer 1102 that includes one or more conductive yarns 108 wrappedaround the cable 106 in a first direction (clockwise in this example),and an outer layer 1104 that includes one or more conductive yarns 108wrapped around the inner layer 1102 in a second direction(counter-clockwise in this example) that is opposite the firstdirection.

Wrapping the conductive yarns of the inner layer 1102 and outer layer1104 in opposite directions, causes the distance between the conductivewires 302 of respective conductive yarns 108 to increase or decreasebased on the direction in which the user twists the interactive cord102. For example, twisting the interactive cord 102 in the samedirection as the second direction of the conductive yarns 108 of theouter layer 1104, causes the conductive yarns of the outer layer 1104 totighten and the conductive yarns of the inner layer 1102 to loosen,which results in the distance between the conductive yarns of the outerand inner layer decreasing. This decrease in distance causes an increasein a capacitance value between the conductive yarns 108 of the outerlayer 1104 and inner layer 1102. Similarly, twisting the interactivecord 102 in the opposite direction as the second direction of theconductive yarns 108 of the outer layer 1104, causes the conductiveyarns of the outer layer 1104 to loosen and the conductive yarns of theinner layer 1102 to tighten, which results in the distance between theconductive yarns of the outer and inner layer increasing. This increasein distance causes a decrease in the capacitance value between theconductive yarns 108 of the outer layer 1104 and inner layer 1102.

Thus, in order to detect twist input and a direction of the twist input,controller 120 measures the capacitance value between the conductiveyarns 108 of the inner layer 1102 and the outer layer 1104. In responseto detecting an increase in the capacitance value, controller 120determines that the increase in capacitance corresponds to twist inputin the same direction as the second direction of the conductive yarns ofthe outer layer 1104 (clockwise in this example). In contrast, inresponse to detecting a decrease in the capacitance value, controller120 determines that the decrease in capacitance corresponds to twistinput in the opposite direction as the second direction of theconductive yarns of the outer layer 1104 (counter-clockwise in thisexample). As described above, controller 120 may then initiate differentfunctionalities based on the detection of twist input, as well as thedirection of the twist input, such as by increasing the volume if theinteractive cord is twisted in a counter-clockwise direction, ordecreasing the volume if the interactive cord is twisted in a clockwisedirection.

In one or more implementations, interactive cord 102 is configured todetect slide input by constructing the interactive cord with multipleconductive yarns 108 that are wrapped around cable 104 to form arepeating pattern. As an example, consider FIG. 12, which illustrates anexample 1200 of an interactive cord 102 that is configured to detectslide input. In this example, a first conductive yarn 1202 and a secondconductive yarn 1204 are wrapped around cable 104. Doing so creates arepeating pattern in the interactive cord 102 in which, when moving fromleft to right, first conductive yarn 1202 is always followed by secondconductive yarn 1204. Similarly, when moving from right to left, secondconductive yarn 1204 is always followed by first conductive yarn 1202.Notably, there is a substantial “gap” between each repeating set of theconductive yarns 1202 and 1204. It is to be appreciated, that whileinteractive cord 102 is illustrated with two different conductive yarnsin this example, any number of conductive yarns could be used as long asthe positioning of the conductive yarns follow the same repeatingpattern.

In this example, controller 120 is configured to detect the signals fromconductive yarns 1202 and 1204 separately. Controller 120 thendetermines a direction of the slide input based on the phaserelationship between a first signal associated with conductive yarn 1202and a second signal associated with conductive yarn 1202. For example,when the user's finger slides to the right in this example, the signalphase of conductive yarn 1202 always leads, or occurs before, the signalphase of conductive yarn 1204. Similarly, when the user's finger slidesto the left in this example, the signal phase of conductive yarn 1204always leads, or occurs before the signal phase of conductive yarn 1202.Thus, controller 120 determines slide input in a first direction (rightin this example) in response to the first signal occurring before thesecond signal, and determines slide input in a second direction (left inthis example) in response to the second signal occurring before thefirst signal.

Example Methods

FIGS. 13, 14, 15, 16, and 17 illustrate an example method 1300 (FIG. 13)of triggering a function based on touch input to a capacitive touchpointof an interactive cord, an example method 1400 (FIG. 14) of controllingaudio to a headset based on touch input to an interactive cord of theheadset, an example method 1500 (FIG. 15) of authenticating a user basedon a touch input pattern provided to an interactive cord, an examplemethod 1600 (FIG. 16) of distinguishing intentional touch input to oneor more capacitive touchpoints from accidental contact, and an examplemethod 1700 (FIG. 17) of detecting twist input with an interactive cord.These methods and other methods herein are shown as sets of blocks thatspecify operations performed but are not necessarily limited to theorder or combinations shown for performing the operations by therespective blocks. The techniques are not limited to performance by oneentity or multiple entities operating on one device.

FIG. 13 illustrates an example method 1300 of triggering a functionbased on touch input to a capacitive touchpoint of an interactive cord.

At 1302, touch input to a capacitive touchpoint of an interactive cordis detected. For example, controller 120 (FIG. 1) detects touch input502 to capacitive touchpoint 112 of interactive cord 102 when an object,such as a user's finger, touches capacitive touchpoint 112.

At 1304, a function associated with the capacitive touchpoint isdetermined. For example, controller 120 determines a function associatedwith the capacitive touchpoint 112 that received the touch input at step1302.

At 1306, the function is triggered. For example, controller 120 triggersthe function determined at step 1304.

FIG. 14 illustrates an example method 1400 of controlling audio to aheadset based on touch input to an interactive cord of the headset.

At 1402, a capacitance of one or more conductive yarns woven into aninteractive cord of a headset is monitored. For example, controller 120monitors a capacitance of one or more conductive yarns 108 woven into afabric cover 104 of interactive cord 102.

At 1404, a change in capacitance to the one or more conductive yarns isdetected. For example, controller 120 detects a change in thecapacitance of the one or more conductive yarns 108.

At 1406, it is determined that the change in capacitance corresponds totouch input to the interactive cord. For example, controller 120determines that the change in capacitance detected at step 1404corresponds to touch input 502 to interactive cord 102. In one or moreimplementations, controller 120 determines that the change incapacitance corresponds to twist input or slide input.

At 1408, audio to the headset is controlled based on the touch input.For example, controller 120 controls audio to a headset based on touchinput 502. For example, if touch input corresponds to twist input,controller may adjust the volume of the audio based on the direction,speed, or amount of the twist input.

FIG. 15 illustrates an example method 1500 of authenticating a userbased on a touch input pattern provided to an interactive cord.

At 1502, a touch input pattern to one or more capacitive touchpoints ofa fabric cover of an interactive cord is detected. For example,controller 120 detects touch input pattern 702 to one or more capacitivetouchpoints 112 of a fabric cover 104 of interactive cord 102. A varietyof different types of touch input patterns are contemplated, includingby way of example and not limitation, tapping the capacitive touchpoints with a particular rhythm, touching absolute positions ofcapacitive touchpoints on the fabric cover, touching relative positionsof capacitive touchpoints on the fabric cover, applying a particularamount of pressure to the capacitive touchpoints on the fabric cover,sliding from one capacitive touchpoint to another capacitive touchpoint,touching multiple capacitive touchpoints at substantially the same time,or causing one capacitive touchpoint to touch one or more othercapacitive touchpoints.

At 1504, the touch input pattern is compared to a stored authenticationpattern. For example controller 120 compares touch input pattern 702,detected at step 1502, to a stored touch authentication pattern. Thestored touch authentication pattern may have been previously provided bythe user.

At 1506, a user is authenticated if the touch input pattern matches thestored authentication pattern. For example, controller 120 authenticatesthe user if touch input pattern 702, detected at step 1502, matches thestored authentication pattern.

FIG. 16 illustrates an example method 1500 of distinguishing intentionaltouch input to one or more capacitive touchpoints from accidentalcontact.

At 1602, a change in capacitance of one or more capacitive touchpointsof an interactive cord is detected. For example, controller 120 (FIG. 1)detects a change in capacitance to one or more capacitive touchpoints112 of interactive cord 102.

At 1604, it is determined whether the change in capacitance correspondsto intentional touch input to the one or more capacitive touchpoints oraccidental contact. For example, controller 120 determines whether thechange in capacitance to the one or more capacitive touchpoints 112corresponds to intentional touch input or accidental contact.

At 1606, if it is determined that the change in capacitance correspondsto intentional touch input, then a function associated with the one ormore capacitive touchpoints is triggered. For example, controller 120determines a function associated with the one or more capacitivetouchpoints 112 that received the intentional touch input, and triggersthe function.

Alternately, at 1608, if it is determined that the change in capacitancecorresponds to accidental contact, then the change in capacitance of theone or more capacitive touchpoints is ignored or utilized as contextinformation to determine a state of the interactive cord. For example,if controller 120 determines that the change in capacitance correspondsto accidental contact, then controller 120 simply ignores the accidentalcontact or uses the accidental contact as context information todetermine a state of interactive cord 102.

FIG. 17 illustrates an example method 1700 of detecting twist input withan interactive cord. At 1702, one or more capacitance values associatedwith conductive yarns of an interactive cord are measured. For example,controller 120 (FIG. 1) measures one or more capacitance valuesassociated with conductive yarns 108 of interactive cord 102. Examplesof interactive cords 102 that are configured to detect twist inputinclude, by way of example and not limitation, the interactive cords 102illustrated in FIGS. 9 and 11.

At 1704, a change in the one or more capacitance values are detected.For example, controller 120 detects a change in the one or morecapacitance values associated with conductive yarns 108 of interactivecord 102.

At 1706, it is determined whether the change in the one or morecapacitance values corresponds to twist input to the conductive yarns ofthe interactive cord 102. For example, controller 120 determines whetherthe change in the one or more capacitance values associated withconductive yarns 108 corresponds to twist input to interactive cord 102.Optionally, at step 1708, a direction of the twist input may also bedetermined. For example, controller 120 determines a direction of thetwist input (e.g., clockwise or counter-clockwise).

At 1710, one or more functions are initiated based on the twist input.For example, controller 120 initiates one or more functions that areassociated or otherwise mapped to the twist input, such as increasing ordecreasing volume to a headset, scrolling through menu items, and soforth. In some cases, the one or more functions are initiated based atleast in part on the direction of the twist input, a speed of the twistinput, and/or an amount of the twist input.

Example Computing System

FIG. 18 illustrates various components of an example computing system1800 that can be implemented as any type of client, server, and/orcomputing device as described with reference to the previous FIGS. 1-17to implement detecting twist input with an interactive cord. Inembodiments, computing system 1800 can be implemented as one or acombination of a wired and/or wireless wearable device, System-on-Chip(SoC), and/or as another type of device or portion thereof. Computingsystem 1800 may also be associated with a user (e.g., a person) and/oran entity that operates the device such that a device describes logicaldevices that include users, software, firmware, and/or a combination ofdevices.

Computing system 1800 includes communication devices 1802 that enablewired and/or wireless communication of device data 1804 (e.g., receiveddata, data that is being received, data scheduled for broadcast, datapackets of the data, etc.). Device data 1804 or other device content caninclude configuration settings of the device, media content stored onthe device, and/or information associated with a user of the device.Media content stored on computing system 1800 can include any type ofaudio, video, and/or image data. Computing system 1800 includes one ormore data inputs 1806 via which any type of data, media content, and/orinputs can be received, such as human utterances, touch data generatedby interactive cord 102, user-selectable inputs (explicit or implicit),messages, music, television media content, recorded video content, andany other type of audio, video, and/or image data received from anycontent and/or data source.

Computing system 1800 also includes communication interfaces 1808, whichcan be implemented as any one or more of a serial and/or parallelinterface, a wireless interface, any type of network interface, a modem,and as any other type of communication interface. Communicationinterfaces 1808 provide a connection and/or communication links betweencomputing system 1800 and a communication network by which otherelectronic, computing, and communication devices communicate data withcomputing system 1800.

Computing system 1800 includes one or more processors 1810 (e.g., any ofmicroprocessors, controllers, and the like), which process variouscomputer-executable instructions to control the operation of computingsystem 1800 and to enable techniques for, or in which can be embodied,interactive cord. Alternatively or in addition, computing system 1800can be implemented with any one or combination of hardware, firmware, orfixed logic circuitry that is implemented in connection with processingand control circuits which are generally identified at 1812. Althoughnot shown, computing system 1800 can include a system bus or datatransfer system that couples the various components within the device. Asystem bus can include any one or combination of different busstructures, such as a memory bus or memory controller, a peripheral bus,a universal serial bus, and/or a processor or local bus that utilizesany of a variety of bus architectures.

Computing system 1800 also includes computer-readable media 1814, suchas one or more memory devices that enable persistent and/ornon-transitory data storage (i.e., in contrast to mere signaltransmission), examples of which include random access memory (RAM),non-volatile memory (e.g., any one or more of a read-only memory (ROM),flash memory, EPROM, EEPROM, etc.), and a disk storage device. A diskstorage device may be implemented as any type of magnetic or opticalstorage device, such as a hard disk drive, a recordable and/orrewriteable compact disc (CD), any type of a digital versatile disc(DVD), and the like. Computing system 1800 can also include a massstorage media device 1816.

Computer-readable media 1814 provides data storage mechanisms to storedevice data 1804, as well as various device applications 1818 and anyother types of information and/or data related to operational aspects ofcomputing system 1800. For example, an operating system 1820 can bemaintained as a computer application with computer-readable media 1814and executed on processors 1810. Device applications 1818 may include adevice manager, such as any form of a control application, softwareapplication, signal-processing and control module, code that is nativeto a particular device, a hardware abstraction layer for a particulardevice, and so on.

Device applications 1818 also include any system components, engines, ormanagers to implement interactive cord. In this example, deviceapplications 1818 include controller 120.

CONCLUSION

Although embodiments of detecting twist input with an interactive cordhave been described in language specific to features and/or methods, itis to be understood that the subject of the appended claims is notnecessarily limited to the specific features or methods described.Rather, the specific features and methods are disclosed as exampleimplementations of detecting twist input with an interactive cord.

What is claimed is:
 1. A system comprising: an interactive cordcomprising a cable and a fabric cover that covers the cable, the fabriccover comprising: at least two conductive yarns that are wrapped aroundthe cable in a first direction, the at least two conductive yarnsconfigured as transmitting lines; and at least two other conductiveyarns that are wrapped around the cable in a second direction, the atleast two other conductive yarns configured as receiving lines; and acontroller coupled to the interactive cord, the controller configuredto: determine that a change in one or more capacitance values associatedwith the at least two conductive yarns configured as the transmittinglines and the at least two other conductive yarns configured as thereceiving lines corresponds to a twist input received by the interactivecord, the determination comprising: collecting sensor pair values bytransmitting a signal on each of the transmitting lines, and measuringthe signal on each of the receiving lines; assigning the each of thetransmitting lines a unique order number based on the sensor pairvalues; performing, for the each of the transmitting lines, a tablelookup to determine a twist likelihood value based on the unique ordernumber; and determining the twist input based on a sum of the twistlikelihood values for the each of the transmitting lines; and initiateone or more functions in response to the determination of the twistinput.
 2. The system of claim 1, wherein the controller is furtherconfigured to determine a direction of the twist input, and wherein thecontroller initiates the one or more functions based at least in part onthe direction of the twist input.
 3. The system of claim 1, wherein thedetermined direction of the twist input corresponds to twisting theinteractive cord clockwise or counter-clockwise.
 4. The system of claim1, wherein the controller is further configured to determine an amountof the twist input or a speed of the twist input, and wherein thecontroller initiates the one or more functions based at least in part onthe amount or the speed of the twist input.
 5. The system of claim 1,wherein the controller is further configured to determine that thechange in the one or more capacitance values corresponds to a slideinput to the interactive cord.
 6. The system of claim 5, wherein thecontroller is configured to initiate one or more additional functionsbased on the slide input.
 7. The system of claim 5, wherein thecontroller is further configured to determine a direction of the slideinput, and wherein the controller initiates the one or more additionalfunctions based at least in part on the direction of the slide input. 8.The system of claim 1, wherein the controller is configured to detectthe change in the one or more capacitance values using mutualcapacitance sensing.
 9. The system of claim 1, wherein the controller isimplemented at one of the interactive cord or a computing device coupledto the interactive cord.
 10. The system of claim 1, wherein theinteractive cord comprises a cord for ear buds or headphones, a datatransfer cord, or a power cord.
 11. The system of claim 1, wherein theone or more functions correspond to a function that increases ordecreases an amount of volume.
 12. A system comprising: an interactivecord, the interactive cord comprising: an inner layer comprising a cableand one or more conductive yarns wrapped around the cable in a firstdirection, the one or more conductive yarns configured as transmittinglines; an outer layer comprising one or more other conductive yarnswrapped around the inner layer in a second direction that is oppositethe first direction, the one or more other conductive yarns configuredas receiving lines; and a controller coupled to the interactive cord,the controller configured to: determine that a change in one or morecapacitance values associated with the at least two conductive yarnsconfigured as the transmitting lines and the one or more otherconductive yarns configured as the receiving lines corresponds to atwist input received by the interactive cord, the determinationcomprising: collecting sensor pair values by transmitting a signal oneach of the transmitting lines, and measuring the signal on each of thereceiving lines; assigning the each of the transmitting lines a uniqueorder number based on the sensor pair values; performing, for the eachof the transmitting lines, a table lookup to determine a twistlikelihood value based on the unique order number; and determining thetwist input based on a sum of the twist likelihood values for the eachof the transmitting lines; and initiate one or more functions inresponse to the determination of the twist input.
 13. The system ofclaim 12, wherein the controller is further configured to determine thata direction of the twist input is the same direction as the seconddirection based on an increase in the one or more capacitance values.14. The system of claim 13, wherein twisting the interactive cord in thesame direction as the second direction causes a distance between thetransmitting lines and the receiving lines to decrease therebyincreasing the one or more capacitance values.
 15. The system of claim12, wherein the controller is further configured to determine that adirection of the twist input is an opposite direction of the seconddirection based on a decrease in the one or more capacitance values. 16.The system of claim 15, wherein twisting the interactive cord in theopposite direction of the second direction causes a distance between thetransmitting lines and the receiving lines to increase therebydecreasing the one or more capacitance values.
 17. The system of claim12, wherein the controller is configured to initiate a first function inresponse to determining that a direction of the twist input correspondsto the first direction, and to initiate a second function in response todetermining that the direction of the twist input corresponds to thesecond direction.
 18. A method implemented by a controller coupled to aninteractive cord that includes a cable and at least two conductive yarnsconfigured as transmitting lines that are wrapped around the cable in afirst direction and at least two other conductive yarns configured asreceiving lines that are wrapped around the cable in a second direction,the method comprising: determining that a change in one or morecapacitance values associated with the at least two conductive yarnsconfigured as the transmitting lines and the at least two otherconductive yarns configured as the receiving lines corresponds to atwist input received by the interactive cord, the determinationcomprising: collecting sensor pair values by transmitting a signal oneach of transmitting lines, and measuring the signal on each of thereceiving lines; assigning the each of the transmitting lines a uniqueorder number based on the sensor pair values; performing, for the eachof the transmitting lines, a table lookup to determine a twistlikelihood value based on the unique order number; and determining thetwist input based on a sum of the twist likelihood values for the eachof the transmitting lines; and initiating one or more functions inresponse to the determination of the twist input.
 19. The method ofclaim 18, further comprising determining a direction of the twist input,wherein the initiating one or more functions is based at least in parton the direction of the twist input.
 20. The method of claim 18, whereinthe one or more functions correspond to a function that scrolls througha list of menu items.